openapi: 3.1.0
info:
  title: Open API
  description: >
    Manage MoreLogin browser profiles and cloud browser runtimes remotely
    through the MoreLogin Open API.


    **Base URL**: `https://api.morelogin.com`


    The Open API manages the same browser profiles as the Local API, but it does
    not require the

    MoreLogin desktop client. Because no local client is involved, the Open API
    cannot launch a browser

    on your own machine. Instead, it can start the profile as a **cloud
    runtime** that runs on

    MoreLogin infrastructure and is driven over the Chrome DevTools Protocol
    (CDP).


    | Capability | Local API | Open API |

    | --- | --- | --- |

    | Manage profiles, proxies, groups, tags | Yes | Yes |

    | Launch the browser on your own machine | Yes | No |

    | Launch the browser in the MoreLogin cloud | Yes | Yes |


    **ID encoding**: MoreLogin IDs are 64-bit integers on the server, but they
    are serialized in JSON as

    decimal strings to avoid precision loss in JavaScript. Send them as strings
    and read them as strings.


    Authentication uses an OAuth2 Bearer token. See

    [Authentication](../Getting%20Started/authentication.md) for details.
  version: 1.0.0
servers:
  - url: https://api.morelogin.com
    description: MoreLogin Open API endpoint
security:
  - OpenApiBearer: []
tags:
  - name: Profiles
    description: Create, update, query, and delete browser profile configurations.
  - name: Cloud Runtime
    description: >-
      Start, stop, query, and connect to browser profiles running in the
      MoreLogin cloud.
  - name: Fingerprint & Device Config
    description: >-
      Browser kernel versions, user agents, resolutions, languages, time zones,
      and device models.
  - name: Cache
    description: Clear cloud-side profile cache.
paths:
  /env/create/quick:
    post:
      summary: Quick create browser profile
      description: >
        Create 1 to 200 browser profiles that share the same configuration.


        The browser kernel is selected from published kernels based on
        `operatorSystemId`. No client

        information is used, so you can optionally pin the machine spec with
        `systemBitType` and

        `architecture`.
      operationId: quickCreateBrowserProfileOpenApi
      tags:
        - Profiles
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QuickCreateRequest'
            example:
              quantity: 1
              browserTypeId: 1
              operatorSystemId: 1
              groupName: Marketing
              isEncrypt: 0
              browserCore: 0
              systemBitType: 1
              architecture: 0
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponseBase'
                  - type: object
                    properties:
                      data:
                        type: array
                        description: IDs of the created profiles, in creation order.
                        items:
                          $ref: '#/components/schemas/EnvironmentId'
                    required:
                      - data
              example:
                code: 0
                msg: null
                data:
                  - '1800000000000001'
                requestId: 1d4f3ea968664593860b94b35d4ebf5e
  /env/create/advanced:
    post:
      summary: Advanced create browser profile
      description: >
        Create a single browser profile with a full fingerprint configuration.


        The browser kernel is matched from published kernels using the operating
        system and kernel

        fields in the request. No client version is read.
      operationId: advancedCreateBrowserProfileOpenApi
      tags:
        - Profiles
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AdvancedCreateRequest'
            example:
              envName: marketing-01
              browserTypeId: 1
              operatorSystemId: 1
              groupName: Marketing
              isEncrypt: 0
              envRemark: Created through the Open API
              uaVersion: 124
              browserCore: 124
              systemBitType: 1
              architecture: 0
              afterStartupConfig:
                afterStartup: 2
                autoOpenUrls:
                  - https://example.com
                stayOnCheckIPPage: false
              startupParams:
                - '--disable-notifications'
              disableAudio: 0
              disableVideo: 0
              disableImg: 0
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponseBase'
                  - type: object
                    properties:
                      data:
                        $ref: '#/components/schemas/EnvironmentId'
                    required:
                      - data
              example:
                code: 0
                msg: null
                data: '1800000000000001'
                requestId: 1d4f3ea968664593860b94b35d4ebf5e
  /env/update:
    post:
      summary: Modify browser profile
      description: >
        Update an existing browser profile. Only the fields present in the
        request are changed.


        When the kernel has to be re-matched, the operating system already
        stored on the profile is

        used. No client operating system or version is read.
      operationId: updateBrowserProfileOpenApi
      tags:
        - Profiles
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateRequest'
            example:
              envId: '1800000000000001'
              envName: marketing-01-updated
              envRemark: Updated through the Open API
              uaVersion: 124
              browserCore: 124
              systemBitType: 1
              architecture: 0
      responses:
        '200':
          $ref: '#/components/responses/VoidDataResponse'
  /env/page:
    post:
      summary: Get a list of browser profiles
      description: >
        Query the browser profiles visible to the authenticated member, page by
        page.


        Paging starts at 1. `dataList` is an empty array when there are no
        results.
      operationId: listBrowserProfilesOpenApi
      tags:
        - Profiles
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnvPageRequest'
            example:
              pageNo: 1
              pageSize: 10
              keyword: marketing
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponseBase'
                  - type: object
                    properties:
                      data:
                        $ref: '#/components/schemas/EnvPageData'
                    required:
                      - data
  /env/detail:
    post:
      summary: Get browser profile details
      description: Return the full configuration of a single browser profile.
      operationId: getBrowserProfileDetailOpenApi
      tags:
        - Profiles
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnvIdRequest'
            example:
              envId: '1800000000000001'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponseBase'
                  - type: object
                    properties:
                      data:
                        $ref: '#/components/schemas/EnvDetail'
                    required:
                      - data
  /env/removeToRecycleBin/batch:
    post:
      summary: Delete browser profiles
      description: Move one or more browser profiles to the recycle bin.
      operationId: batchRemoveBrowserProfilesOpenApi
      tags:
        - Profiles
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                envIds:
                  type: array
                  description: Profile IDs to move to the recycle bin. Must not be empty.
                  minItems: 1
                  items:
                    $ref: '#/components/schemas/EnvironmentId'
              required:
                - envIds
            example:
              envIds:
                - '1800000000000001'
                - '1800000000000002'
      responses:
        '200':
          $ref: '#/components/responses/BooleanDataResponse'
  /env/lock/query:
    post:
      summary: Get browser profile lock status
      description: Check whether a browser profile is currently locked by another member.
      operationId: queryBrowserProfileLockOpenApi
      tags:
        - Profiles
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnvIdRequest'
            example:
              envId: '1800000000000001'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponseBase'
                  - type: object
                    properties:
                      data:
                        type: object
                        properties:
                          envId:
                            $ref: '#/components/schemas/EnvironmentId'
                          locked:
                            type: boolean
                            description: Whether the profile is locked by another member.
                            example: false
                    required:
                      - data
  /env/setGroup/batch:
    post:
      summary: Batch set profile group
      description: >
        Move profiles into a group by group name. The group is created
        automatically when it does not

        exist.


        Provide at least one of `envIds` or `uniqueIds`.
      operationId: batchSetBrowserProfileGroupOpenApi
      tags:
        - Profiles
      requestBody:
        required: true
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/EnvIdsOrUniqueIds'
                - type: object
                  properties:
                    groupName:
                      type: string
                      description: Target group name. Must not be blank.
                      minLength: 1
                      example: Marketing
                  required:
                    - groupName
            example:
              envIds:
                - '1800000000000001'
              groupName: Marketing
      responses:
        '200':
          $ref: '#/components/responses/BooleanDataResponse'
  /env/setProxy/batch:
    post:
      summary: Batch set profile proxy
      description: >
        Bind a proxy to multiple profiles. When `proxyId` matches an existing
        proxy, the profiles are

        bound to it; otherwise a new proxy is created from the supplied
        connection details.


        Provide at least one of `envIds` or `uniqueIds`.
      operationId: batchSetBrowserProfileProxyOpenApi
      tags:
        - Profiles
      requestBody:
        required: true
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/EnvIdsOrUniqueIds'
                - type: object
                  properties:
                    proxy:
                      $ref: '#/components/schemas/ProxyInput'
            example:
              envIds:
                - '1800000000000001'
              proxy:
                proxyIp: 127.0.0.1
                proxyPort: 1080
                proxyType: 2
                proxyProvider: 0
                username: user
                password: pass
      responses:
        '200':
          $ref: '#/components/responses/BooleanDataResponse'
  /env/setRemark/batch:
    post:
      summary: Batch set profile remark
      description: >
        Set the remark on multiple profiles. Pass an empty string to clear the
        remark.


        Provide at least one of `envIds` or `uniqueIds`.
      operationId: batchSetBrowserProfileRemarkOpenApi
      tags:
        - Profiles
      requestBody:
        required: true
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/EnvIdsOrUniqueIds'
                - type: object
                  properties:
                    envRemark:
                      type: string
                      description: Profile remark. An empty string clears the remark.
                      example: Managed by automation
                  required:
                    - envRemark
            example:
              envIds:
                - '1800000000000001'
              envRemark: Managed by automation
      responses:
        '200':
          $ref: '#/components/responses/BooleanDataResponse'
  /cloudbrowser/start:
    post:
      summary: Start cloud runtime
      description: >
        Start a browser profile as a cloud runtime.


        Starting is asynchronous. A successful response only means the start
        request was accepted. Poll

        [Page cloud runtimes](#operation/pageCloudRuntimesOpenApi) until
        `cloudBrowserStatus` is

        `RUNNING`, then call [Connect cloud
        runtime](#operation/connectCloudRuntimeOpenApi).


        A member can have only one active run per profile. Starting also
        validates profile permissions,

        feature entitlement, proxy reachability, kernel availability, and AI
        credit balance.
      operationId: startCloudRuntimeOpenApi
      tags:
        - Cloud Runtime
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CloudBrowserStartRequest'
            example:
              envId: '1800000000000001'
      responses:
        '200':
          $ref: '#/components/responses/VoidDataResponse'
  /cloudbrowser/stop:
    post:
      summary: Stop cloud runtime
      description: >
        Stop the active cloud runtime for a profile. A successful response only
        means the stop request

        was accepted; archiving and resource release may still be in progress.


        `force` is only honored when the current run has an archive status of
        `FAILED`.
      operationId: stopCloudRuntimeOpenApi
      tags:
        - Cloud Runtime
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CloudBrowserStopRequest'
            example:
              envId: '1800000000000001'
              force: false
      responses:
        '200':
          $ref: '#/components/responses/VoidDataResponse'
  /cloudbrowser/page:
    post:
      summary: Page cloud runtimes
      description: >
        Query the browser profiles visible to the authenticated member together
        with the cloud runtime

        status for that member.


        `envId` also accepts the field alias `id`. `groupId` of `0` means
        ungrouped.
      operationId: pageCloudRuntimesOpenApi
      tags:
        - Cloud Runtime
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CloudBrowserPageRequest'
            example:
              pageNo: 1
              pageSize: 10
              keyword: marketing
      responses:
        '200':
          $ref: '#/components/responses/CloudBrowserPageResponse'
  /cloudbrowser/connect:
    post:
      summary: Connect cloud runtime
      description: >
        Return the connection details for a running cloud runtime. Attach an
        automation framework such

        as Puppeteer, Playwright, or Selenium to the returned `cdpUrl`.


        The runtime must be in the `RUNNING` state. Calling this again issues a
        new desktop token, which

        can invalidate an earlier viewer session. Treat both returned URLs as
        short-lived credentials

        and do not log or persist them.
      operationId: connectCloudRuntimeOpenApi
      tags:
        - Cloud Runtime
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CloudBrowserConnectRequest'
            example:
              envId: '1800000000000001'
      responses:
        '200':
          $ref: '#/components/responses/CloudBrowserConnectResponse'
  /env/advanced/ua/versions:
    post:
      summary: Get a list of browser kernel versions
      description: >
        Return the published browser kernel and UA major versions.


        The request body is optional and every field is optional. Defaults are
        Windows (`1`), 64-bit

        (`1`), and x86 (`0`). Only published kernels are returned.
      operationId: listKernelVersionsOpenApi
      tags:
        - Fingerprint & Device Config
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                systemType:
                  $ref: '#/components/schemas/OperatingSystem'
                systemBitType:
                  $ref: '#/components/schemas/SystemBitType'
                architecture:
                  $ref: '#/components/schemas/Architecture'
            example:
              systemType: 1
              systemBitType: 1
              architecture: 0
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponseBase'
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          type: object
                          properties:
                            browserType:
                              $ref: '#/components/schemas/BrowserType'
                            versions:
                              type: array
                              description: >-
                                Published UA and kernel major versions for this
                                browser type.
                              items:
                                type: integer
                              example:
                                - 124
                                - 123
                    required:
                      - data
  /env/advanced/ua/get:
    post:
      summary: Get browser user agent
      description: >
        Generate a user agent that matches the requested operating system and
        browser vendor, using only

        published kernels.
      operationId: getUserAgentOpenApi
      tags:
        - Fingerprint & Device Config
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                os:
                  $ref: '#/components/schemas/OperatingSystem'
                osVersion:
                  type: string
                  description: |
                    Operating system version. Defaults to an empty string.
                  enum:
                    - ''
                    - Windows 7
                    - Windows 8
                    - Windows 10
                    - Windows 11
                    - macOS 12
                    - macOS 13
                    - macOS 14
                  example: Windows 11
                vendor:
                  $ref: '#/components/schemas/BrowserType'
                mobileDevice:
                  type: string
                  description: Mobile device model ID. Used for Android and iOS profiles.
                  example: pixel_8
                systemBitType:
                  $ref: '#/components/schemas/SystemBitType'
                architecture:
                  $ref: '#/components/schemas/Architecture'
              required:
                - os
                - vendor
            example:
              os: 1
              osVersion: Windows 11
              vendor: 1
              systemBitType: 1
              architecture: 0
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponseBase'
                  - type: object
                    properties:
                      data:
                        type: object
                        properties:
                          ua:
                            type: string
                            description: Matched user agent.
                            example: >-
                              Mozilla/5.0 (Windows NT 10.0; Win64; x64)
                              AppleWebKit/537.36 (KHTML, like Gecko)
                              Chrome/124.0.0.0 Safari/537.36
                          resolution:
                            $ref: '#/components/schemas/Resolution'
                          mobileDevice:
                            type:
                              - string
                              - 'null'
                            description: >-
                              Mobile device model ID. Empty for desktop
                              profiles.
                            example: null
                    required:
                      - data
  /env/base/resolution/list:
    post:
      summary: Get resolution list
      description: Return the resolutions available for a user agent or operating system.
      operationId: listResolutionsOpenApi
      tags:
        - Fingerprint & Device Config
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                ua:
                  type: string
                  description: User agent used to match resolutions.
                  example: >-
                    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
                    (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36
                os:
                  $ref: '#/components/schemas/OperatingSystem'
            example:
              os: 1
      responses:
        '200':
          description: Success. Returns an empty array when there are no matches.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponseBase'
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/Resolution'
                    required:
                      - data
  /env/base/list:
    post:
      summary: Get time zone and language list
      description: Return the time zones and languages available for an operating system.
      operationId: listTimezonesAndLanguagesOpenApi
      tags:
        - Fingerprint & Device Config
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                os:
                  allOf:
                    - $ref: '#/components/schemas/OperatingSystem'
                  default: 1
            example:
              os: 1
      responses:
        '200':
          description: Success. Empty lists are returned as empty arrays.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponseBase'
                  - type: object
                    properties:
                      data:
                        type: object
                        properties:
                          time_zone_list:
                            type: array
                            items:
                              $ref: '#/components/schemas/IdValueOption'
                          language_list:
                            type: array
                            items:
                              $ref: '#/components/schemas/IdValueOption'
                    required:
                      - data
              example:
                code: 0
                msg: null
                data:
                  time_zone_list:
                    - id: America/Los_Angeles
                      value: (GMT-08:00) America/Los_Angeles
                  language_list:
                    - id: en-US
                      value: English (United States)
                requestId: 1d4f3ea968664593860b94b35d4ebf5e
  /env/base/mobile/devices:
    post:
      summary: Get phone model list
      description: >-
        Return the mobile device models available for Android and iOS profiles.
        No request body.
      operationId: listMobileDevicesOpenApi
      tags:
        - Fingerprint & Device Config
      responses:
        '200':
          description: Success. Returns an empty array when no models are available.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/ApiResponseBase'
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/MobileDevice'
                    required:
                      - data
  /env/fingerprint/refresh:
    post:
      summary: Refresh profile fingerprint
      description: >
        Regenerate the fingerprint of a profile.


        Provide at least one of `envId` or `uniqueId`. The operating system in
        the request takes

        precedence; when it is omitted, the operating system stored on the
        profile is used to pick a

        published kernel. No client information is read.
      operationId: refreshFingerprintOpenApi
      tags:
        - Fingerprint & Device Config
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                envId:
                  allOf:
                    - $ref: '#/components/schemas/EnvironmentId'
                  description: Profile ID. Provide this or `uniqueId`.
                uniqueId:
                  type: integer
                  format: int32
                  description: Profile sequence number. Provide this or `envId`.
                  example: 1001
                browserCore:
                  type: integer
                  description: >-
                    Kernel major version. `0` or omitted means automatic
                    matching.
                  minimum: 0
                  example: 124
                uaVersion:
                  type: integer
                  description: >-
                    UA major version. `0` or omitted refreshes according to
                    business rules.
                  minimum: 0
                  example: 124
                browserTypeId:
                  $ref: '#/components/schemas/BrowserType'
                operatorSystemId:
                  $ref: '#/components/schemas/OperatingSystem'
                systemBitType:
                  $ref: '#/components/schemas/SystemBitType'
                architecture:
                  $ref: '#/components/schemas/Architecture'
                advancedSetting:
                  $ref: '#/components/schemas/AdvancedSetting'
            example:
              envId: '1800000000000001'
              browserCore: 124
              uaVersion: 124
              browserTypeId: 1
              operatorSystemId: 1
              systemBitType: 1
              architecture: 0
      responses:
        '200':
          $ref: '#/components/responses/VoidDataResponse'
  /env/cache/cleanCloud:
    post:
      summary: Clear cloud profile cache
      description: >
        Clear the cloud-side cache of a profile. This does not touch any local
        client cache.


        Provide at least one of `envId` or `uniqueId`.
      operationId: cleanCloudCacheOpenApi
      tags:
        - Cache
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                envId:
                  allOf:
                    - $ref: '#/components/schemas/EnvironmentId'
                  description: Profile ID. Provide this or `uniqueId`.
                uniqueId:
                  type: integer
                  format: int32
                  description: Profile sequence number. Provide this or `envId`.
                  minimum: 1
                  example: 1001
                others:
                  type: boolean
                  description: Whether to clear other cloud cache data.
                  example: true
                cookie:
                  type: boolean
                  description: Whether to clear cloud cookies.
                  example: false
            example:
              envId: '1800000000000001'
              others: true
              cookie: false
      responses:
        '200':
          $ref: '#/components/responses/VoidDataResponse'
components:
  securitySchemes:
    OpenApiBearer:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >
        OAuth2 access token obtained from `/oauth2/token`. Send it as
        `Authorization: Bearer <token>`.

        Tokens expire after 3600 seconds.
  schemas:
    OperatingSystem:
      type: integer
      description: |
        Operating system:
        - `1` — Windows
        - `2` — macOS
        - `3` — Android
        - `4` — iOS
        - `5` — Linux
      enum:
        - 1
        - 2
        - 3
        - 4
        - 5
      example: 1
    BrowserType:
      type: integer
      description: |
        Browser type:
        - `1` — Chrome
        - `2` — Firefox
      enum:
        - 1
        - 2
      example: 1
    SystemBitType:
      type: integer
      description: |
        System bitness. Defaults to `1`:
        - `0` — 32-bit
        - `1` — 64-bit
      enum:
        - 0
        - 1
      default: 1
      example: 1
    Architecture:
      type: integer
      description: |
        CPU architecture. Defaults to `0`:
        - `0` — x86
        - `1` — ARM
      enum:
        - 0
        - 1
      default: 0
      example: 0
    ToggleFlag:
      type: integer
      description: |
        Switch value:
        - `0` — off
        - `1` — on
      enum:
        - 0
        - 1
      example: 0
    ProxyType:
      type: integer
      description: |
        Proxy protocol:
        - `0` — HTTP
        - `1` — HTTPS
        - `2` — SOCKS5
        - `3` — SSH
      enum:
        - 0
        - 1
        - 2
        - 3
      example: 2
    ProxyProvider:
      type: integer
      description: >
        Proxy provider. `0` to `3` mean a plain proxy of the matching protocol;
        `4` and above identify a

        commercial provider:

        - `0` — HTTP

        - `1` — HTTPS

        - `2` — SOCKS5

        - `3` — SSH

        - `4` — Oxylabs

        - `5` — Proxys.io

        - `6` — GeoSurf

        - `7` — Luminati

        - `8` — Lumauto

        - `9` — Oxylabsauto

        - `10` — Trojan

        - `11` — Shadowsocks

        - `12` — vmess

        - `13` — ABCProxy

        - `14` — LunaProxy

        - `15` — IPHTML

        - `16` — PiaProxy

        - `17` — 922S5

        - `18` — 360Proxy


        Treat unknown future values as a generic commercial provider.
      example: 0
    AdvancedSetting:
      type: object
      description: >
        Dynamic fingerprint configuration. Keys come from the profile
        advanced-settings protocol; each

        value may be a string, number, boolean, array, or object depending on
        the key.
      additionalProperties: true
      example:
        language: en-US
        timezone: America/Los_Angeles
    ProxyInput:
      type: object
      description: >
        Proxy connection details. When `proxyId` refers to an existing proxy,
        that proxy is reused;

        otherwise a new proxy is created from these fields.
      properties:
        proxyId:
          type: string
          pattern: ^\d+$
          description: Existing proxy ID.
          example: '1800000000000101'
        proxyIp:
          type: string
          description: Proxy host or IP address.
          example: 127.0.0.1
        proxyPort:
          type: integer
          description: Proxy port.
          minimum: 1
          maximum: 65535
          example: 1080
        proxyName:
          type: string
          description: Proxy name.
          maxLength: 600
          example: proxy-a
        proxyType:
          $ref: '#/components/schemas/ProxyType'
        proxyProvider:
          $ref: '#/components/schemas/ProxyProvider'
        ipMonitor:
          type: boolean
          description: Whether to monitor changes to the exit IP.
          example: true
        ipChangeAction:
          type: integer
          description: Action to take after the exit IP changes.
          example: 0
        username:
          type: string
          description: Proxy username.
          maxLength: 200
          example: user
        password:
          type: string
          description: Proxy password.
          maxLength: 100
          example: pass
        refreshUrl:
          type: string
          description: Proxy refresh URL.
          example: https://example.com/refresh
        encryptionType:
          type: integer
          description: Proxy encryption type.
          example: 0
        country:
          type: string
          description: Country or region.
          example: US
        state:
          type: string
          description: State or province.
          example: CA
        city:
          type: string
          description: City.
          example: Los Angeles
    AccountInfo:
      type: object
      description: Platform account bound to the profile.
      properties:
        username:
          type: string
          description: Platform account username.
          maxLength: 64
          example: account@example.com
        password:
          type: string
          description: Platform account password.
          maxLength: 50
          example: secret
        siteId:
          type: string
          pattern: ^\d+$
          description: Site ID.
          example: '1800000000000201'
        platformId:
          type: string
          pattern: ^\d+$
          description: Platform ID. `9999` means a custom platform.
          example: '9999'
        customerUrl:
          type: string
          description: >-
            Custom platform URL. Required when `platformId` is `9999`. Must be a
            valid URL.
          example: https://example.com
        otpSecret:
          type: string
          description: Two-factor authentication (2FA) secret.
          example: BASE32SECRET
      required:
        - platformId
    AfterStartupConfigInput:
      type: object
      description: Behavior applied after the browser starts.
      properties:
        afterStartup:
          type: integer
          description: |
            Startup behavior. Defaults to `1`:
            - `1` — reopen the pages from the last session
            - `2` — open the specified pages
            - `3` — open the specified pages and the platform
            - `4` — reopen the last session pages and the platform
          enum:
            - 1
            - 2
            - 3
            - 4
          default: 1
          example: 2
        autoOpenUrls:
          type: array
          description: Pages to open automatically. Each entry must be a valid URL.
          items:
            type: string
          example:
            - https://example.com
        stayOnCheckIPPage:
          type: boolean
          description: Whether to stay on the IP check page after startup.
          example: false
    AfterStartupConfigDetail:
      type: object
      description: Behavior applied after the browser starts, as stored on the profile.
      properties:
        afterStartup:
          type: integer
          description: Startup behavior. `1` to `4`.
          enum:
            - 1
            - 2
            - 3
            - 4
          example: 2
        autoOpenUrls:
          type: array
          items:
            type: string
          example:
            - https://example.com
        platformUrl:
          type:
            - string
            - 'null'
          description: Platform URL opened after startup.
          example: https://platform.example.com
    TagInfo:
      type: object
      properties:
        id:
          type: string
          pattern: ^\d+$
          description: Tag ID.
          example: '1800000000000301'
        tagName:
          type: string
          description: Tag name.
          example: important
    ProxyInfoDetail:
      type: object
      description: Proxy currently bound to the profile.
      properties:
        id:
          type: string
          pattern: ^\d+$
          description: Proxy ID.
          example: '1800000000000101'
        proxyName:
          type: string
          description: Proxy name.
          example: proxy-a
        proxyType:
          $ref: '#/components/schemas/ProxyType'
        proxyProvider:
          $ref: '#/components/schemas/ProxyProvider'
        proxyCategoryType:
          type: integer
          description: |
            Proxy category:
            - `1` — cloud platform
            - `2` — self-owned IP
          enum:
            - 1
            - 2
          example: 2
        proxyCheckStatus:
          type: integer
          description: |
            Connectivity check status:
            - `0` — pending
            - `1` — succeeded
            - `2` — failed
            - `3` — unknown error
          enum:
            - 0
            - 1
            - 2
            - 3
          example: 1
        proxyStatus:
          type: integer
          description: |
            Proxy status:
            - `0` — normal
            - `1` — pending allocation
            - `2` — upgrading
            - `3` — expired
          enum:
            - 0
            - 1
            - 2
            - 3
          example: 0
        proxyIp:
          type: string
          description: Proxy host or IP address.
          example: 127.0.0.1
        exportIp:
          type:
            - string
            - 'null'
          description: Exit IP address.
          example: 203.0.113.10
        countryCode:
          type:
            - string
            - 'null'
          description: Country code.
          example: US
        expiryTime:
          type:
            - string
            - 'null'
          pattern: ^\d+$
          description: Expiry time as a Unix timestamp in milliseconds.
          example: '1786320000000'
        username:
          type:
            - string
            - 'null'
          description: Proxy username.
          example: user
        password:
          type:
            - string
            - 'null'
          description: Proxy password.
          example: pass
        refreshUrl:
          type:
            - string
            - 'null'
          description: Proxy refresh URL.
          example: https://example.com/refresh
    Resolution:
      type: object
      properties:
        id:
          type: string
          description: Resolution ID.
          example: 1920_1080
        value:
          type: string
          description: Display value.
          example: 1920x1080
    IdValueOption:
      type: object
      properties:
        id:
          type: string
          description: Option ID.
          example: en-US
        value:
          type: string
          description: Display value.
          example: English (United States)
    MobileDevice:
      type: object
      properties:
        id:
          type: string
          description: Device model ID.
          example: pixel_8
        name:
          type: string
          description: Device model name.
          example: Pixel 8
        resolution:
          type: string
          description: Device resolution.
          example: 1080x2400
        os:
          type: integer
          description: |
            Operating system:
            - `3` — Android
            - `4` — iOS
          enum:
            - 3
            - 4
          example: 3
        platform:
          type: string
          description: Platform name.
          example: Android
    EnvIdRequest:
      type: object
      properties:
        envId:
          $ref: '#/components/schemas/EnvironmentId'
      required:
        - envId
    EnvIdsOrUniqueIds:
      type: object
      description: Target profiles. Provide at least one of `envIds` or `uniqueIds`.
      properties:
        envIds:
          type: array
          description: Profile IDs.
          items:
            $ref: '#/components/schemas/EnvironmentId'
        uniqueIds:
          type: array
          description: Profile sequence numbers.
          items:
            type: integer
            format: int32
          example:
            - 1001
    QuickCreateRequest:
      type: object
      properties:
        quantity:
          type: integer
          description: Number of profiles to create.
          minimum: 1
          maximum: 200
          example: 1
        browserTypeId:
          $ref: '#/components/schemas/BrowserType'
        operatorSystemId:
          $ref: '#/components/schemas/OperatingSystem'
        groupId:
          type: string
          pattern: ^\d+$
          description: Existing group ID. `0` means ungrouped.
          example: '0'
        groupName:
          type: string
          description: >
            Group name. The group is looked up or created automatically when
            supplied.
          maxLength: 50
          example: Marketing
        isEncrypt:
          allOf:
            - $ref: '#/components/schemas/ToggleFlag'
          description: |
            Whether to encrypt the profile. Defaults to `0`:
            - `0` — not encrypted
            - `1` — encrypted
        browserCore:
          type: integer
          description: >-
            Kernel major version. Defaults to `0`, which selects a published
            kernel automatically.
          minimum: 0
          example: 0
        systemBitType:
          $ref: '#/components/schemas/SystemBitType'
        architecture:
          $ref: '#/components/schemas/Architecture'
        proxy:
          $ref: '#/components/schemas/ProxyInput'
      required:
        - quantity
        - browserTypeId
        - operatorSystemId
    AdvancedCreateRequest:
      type: object
      properties:
        envName:
          type: string
          description: Profile name.
          maxLength: 100
          example: marketing-01
        browserTypeId:
          $ref: '#/components/schemas/BrowserType'
        operatorSystemId:
          $ref: '#/components/schemas/OperatingSystem'
        groupId:
          type: string
          pattern: ^\d+$
          description: Existing group ID. `0` means ungrouped.
          example: '0'
        groupName:
          type: string
          description: >-
            Group name. The group is looked up or created automatically when
            supplied.
          maxLength: 50
          example: Marketing
        tagIds:
          type: array
          description: Tag IDs. An empty array means no tags.
          items:
            type: string
            pattern: ^\d+$
          example:
            - '1800000000000301'
        proxyId:
          type: string
          pattern: ^\d+$
          description: Existing proxy ID. `0` means no proxy.
          example: '0'
        proxy:
          $ref: '#/components/schemas/ProxyInput'
        isEncrypt:
          allOf:
            - $ref: '#/components/schemas/ToggleFlag'
          description: Whether to encrypt the profile. Defaults to `0`.
        envRemark:
          type: string
          description: Profile remark.
          maxLength: 1500
          example: Created through the Open API
        uaVersion:
          type: integer
          description: UA major version. Defaults to `0`, meaning any.
          minimum: 0
          example: 124
        browserCore:
          type: integer
          description: >-
            Kernel major version. Defaults to `0`, which selects a published
            kernel automatically.
          minimum: 0
          example: 124
        systemBitType:
          $ref: '#/components/schemas/SystemBitType'
        architecture:
          $ref: '#/components/schemas/Architecture'
        accountInfo:
          $ref: '#/components/schemas/AccountInfo'
        isShowAccount:
          allOf:
            - $ref: '#/components/schemas/ToggleFlag'
          description: Password protection switch.
        afterStartupConfig:
          $ref: '#/components/schemas/AfterStartupConfigInput'
        startupParams:
          type: array
          description: Browser startup parameters.
          items:
            type: string
          example:
            - '--disable-notifications'
        cookies:
          type: string
          description: Cookies as a JSON text payload.
          example: '[{"name":"sid","value":"abc"}]'
        advancedSetting:
          $ref: '#/components/schemas/AdvancedSetting'
        disableAudio:
          allOf:
            - $ref: '#/components/schemas/ToggleFlag'
          description: Whether to block audio playback.
        disableVideo:
          allOf:
            - $ref: '#/components/schemas/ToggleFlag'
          description: Whether to block video loading.
        disableImg:
          allOf:
            - $ref: '#/components/schemas/ToggleFlag'
          description: Whether to block image loading.
        imgLimitSize:
          type: integer
          description: Maximum image size to load, in KB.
          minimum: 0
          maximum: 100000
          example: 1000
      required:
        - browserTypeId
        - operatorSystemId
    UpdateRequest:
      type: object
      properties:
        envId:
          allOf:
            - $ref: '#/components/schemas/EnvironmentId'
          description: Profile ID. The request also accepts the field alias `id`.
        envName:
          type: string
          description: Profile name.
          maxLength: 100
          example: marketing-01-updated
        groupId:
          type: string
          pattern: ^\d+$
          description: Group ID. `0` means ungrouped.
          example: '0'
        groupName:
          type: string
          description: >-
            Group name. The group is looked up or created automatically when
            supplied.
          maxLength: 50
          example: Marketing
        tagIds:
          type: array
          description: Tag IDs.
          items:
            type: string
            pattern: ^\d+$
          example:
            - '1800000000000301'
        proxyId:
          type: string
          pattern: ^\d+$
          description: Existing proxy ID. `0` means no proxy.
          example: '0'
        envRemark:
          type: string
          description: Profile remark.
          maxLength: 1500
          example: Updated through the Open API
        uaVersion:
          type: integer
          description: UA major version.
          minimum: 0
          example: 124
        browserCore:
          type: integer
          description: Kernel major version.
          minimum: 0
          example: 124
        systemBitType:
          $ref: '#/components/schemas/SystemBitType'
        architecture:
          $ref: '#/components/schemas/Architecture'
        accountInfo:
          $ref: '#/components/schemas/AccountInfo'
        isShowAccount:
          allOf:
            - $ref: '#/components/schemas/ToggleFlag'
          description: Password protection switch.
        afterStartupConfig:
          $ref: '#/components/schemas/AfterStartupConfigInput'
        startupParams:
          type: array
          items:
            type: string
          example:
            - '--disable-notifications'
        cookies:
          type: string
          description: Cookies as a JSON text payload.
          example: '[{"name":"sid","value":"abc"}]'
        advancedSetting:
          $ref: '#/components/schemas/AdvancedSetting'
        disableAudio:
          allOf:
            - $ref: '#/components/schemas/ToggleFlag'
          description: Whether to block audio playback.
        disableVideo:
          allOf:
            - $ref: '#/components/schemas/ToggleFlag'
          description: Whether to block video loading.
        disableImg:
          allOf:
            - $ref: '#/components/schemas/ToggleFlag'
          description: Whether to block image loading.
        imgLimitSize:
          type: integer
          description: Maximum image size to load, in KB.
          minimum: 0
          maximum: 100000
          example: 1000
        hostnameSource:
          type: integer
          description: |
            Device name source:
            - `0` — custom
            - `1` — real
          enum:
            - 0
            - 1
          example: 0
        hostname:
          type: string
          description: Device name. Used when `hostnameSource` is `0`.
          example: DESKTOP-OPENAPI
        macAddressSource:
          type: integer
          description: |
            MAC address source:
            - `0` — custom
            - `1` — real
          enum:
            - 0
            - 1
          example: 0
        macAddress:
          type: string
          description: MAC address. Used when `macAddressSource` is `0`.
          example: 00:16:3E:12:34:56
      required:
        - envId
    EnvPageRequest:
      type: object
      properties:
        uniqueIds:
          type: array
          description: Profile sequence numbers. Up to 100 items.
          maxItems: 100
          items:
            type: integer
            format: int32
          example:
            - 1001
        envId:
          allOf:
            - $ref: '#/components/schemas/EnvironmentId'
          description: Profile ID. The request also accepts the field alias `id`.
        envName:
          type: string
          description: Profile name.
          example: marketing-01
        keyword:
          type: string
          description: >-
            Keyword filter. Matches profile name, group name, tag name, and
            remark.
          example: marketing
        groupId:
          type: string
          pattern: ^\d+$
          description: Group ID. `0` means ungrouped.
          example: '0'
        pageSize:
          type: integer
          format: int64
          description: Number of items per page.
          minimum: 1
          maximum: 100
          default: 10
          example: 10
        pageNo:
          type: integer
          format: int64
          description: Current page number, starting from 1.
          minimum: 1
          default: 1
          example: 1
        onlyMainAccount:
          type: boolean
          description: Whether to return only profiles owned by the main account.
          example: false
      required:
        - pageNo
        - pageSize
    EnvListItem:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/EnvironmentId'
        envName:
          type: string
          description: Profile name.
          example: marketing-01
        groupId:
          type: string
          pattern: ^\d+$
          description: Group ID. `0` means ungrouped.
          example: '0'
        groupName:
          type:
            - string
            - 'null'
          description: Group name.
          example: Marketing
        tagInfos:
          type: array
          description: Tags on the profile. Empty array when there are none.
          items:
            $ref: '#/components/schemas/TagInfo'
        envRemark:
          type:
            - string
            - 'null'
          description: Profile remark.
          example: Created through the Open API
        proxyId:
          type:
            - string
            - 'null'
          pattern: ^\d+$
          description: Proxy ID bound to the profile.
          example: '1800000000000101'
        proxy:
          oneOf:
            - $ref: '#/components/schemas/ProxyInfoDetail'
            - type: 'null'
          description: Proxy details. `null` when no proxy is bound.
    EnvPageData:
      type: object
      properties:
        total:
          type: string
          pattern: ^\d+$
          description: Total number of records.
          example: '1'
        current:
          type: string
          pattern: ^\d+$
          description: Current page number.
          example: '1'
        pages:
          type: string
          pattern: ^\d+$
          description: Total number of pages.
          example: '1'
        dataList:
          type: array
          description: Profiles on the current page. Empty array when there are no results.
          items:
            $ref: '#/components/schemas/EnvListItem'
      required:
        - total
        - current
        - pages
        - dataList
    EnvDetail:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/EnvironmentId'
        envName:
          type: string
          description: Profile name.
          example: marketing-01
        browserTypeId:
          $ref: '#/components/schemas/BrowserType'
        operatorSystemId:
          $ref: '#/components/schemas/OperatingSystem'
        groupId:
          type: string
          pattern: ^\d+$
          description: Group ID. `0` means ungrouped.
          example: '0'
        groupName:
          type:
            - string
            - 'null'
          description: Group name.
          example: Marketing
        tagIds:
          type: array
          description: Tag IDs.
          items:
            type: string
            pattern: ^\d+$
          example:
            - '1800000000000301'
        tagInfos:
          type: array
          description: Tags on the profile. Empty array when there are none.
          items:
            $ref: '#/components/schemas/TagInfo'
        proxyId:
          type:
            - string
            - 'null'
          pattern: ^\d+$
          description: Proxy ID bound to the profile.
          example: '1800000000000101'
        isEncrypt:
          allOf:
            - $ref: '#/components/schemas/ToggleFlag'
          description: Whether the profile is encrypted.
        envRemark:
          type:
            - string
            - 'null'
          description: Profile remark.
          example: Created through the Open API
        uaVersion:
          type: integer
          description: UA major version.
          example: 124
        browserCore:
          type: integer
          description: Kernel major version.
          example: 124
        accountInfo:
          oneOf:
            - $ref: '#/components/schemas/AccountInfo'
            - type: 'null'
          description: >-
            Platform account bound to the profile. `null` when none is
            configured.
        isShowAccount:
          allOf:
            - $ref: '#/components/schemas/ToggleFlag'
          description: Password protection switch.
        afterStartupConfig:
          oneOf:
            - $ref: '#/components/schemas/AfterStartupConfigDetail'
            - type: 'null'
          description: Behavior applied after the browser starts.
        startupParams:
          type: array
          items:
            type: string
          example:
            - '--disable-notifications'
        cookies:
          type:
            - string
            - 'null'
          description: Cookies as a JSON text payload.
          example: '[{"name":"sid","value":"abc"}]'
        advancedSetting:
          $ref: '#/components/schemas/AdvancedSetting'
    ApiResponseBase:
      type: object
      properties:
        code:
          type: integer
          description: >-
            Return result code. `0` means success; other codes indicate
            exceptions.
          example: 0
        msg:
          type:
            - string
            - 'null'
          description: Error message. Usually `null` on success.
          example: null
        requestId:
          type: string
          description: >-
            Operation request ID. This field may be present when the request
            passes through the API gateway.
          example: 1d4f3ea968664593860b94b35d4ebf5e
      required:
        - code
        - msg
    EnvironmentId:
      type: string
      pattern: ^[1-9]\d*$
      description: >
        Browser profile (environment) ID. Serialized as a decimal string to
        avoid JavaScript

        precision loss on 64-bit integers.
      example: '1800000000000001'
    CloudBrowserStartRequest:
      type: object
      properties:
        envId:
          $ref: '#/components/schemas/EnvironmentId'
      required:
        - envId
    CloudBrowserStopRequest:
      type: object
      properties:
        envId:
          $ref: '#/components/schemas/EnvironmentId'
        force:
          type: boolean
          description: >
            Whether to forcibly release the cloud runtime. Only takes effect
            when the current run has

            an archive status of `FAILED`; in that case the archive step is
            skipped and runtime

            resources are reclaimed. Ignored in all other cases.
          default: false
          example: false
      required:
        - envId
    CloudBrowserPageRequest:
      type: object
      properties:
        uniqueIds:
          type: array
          description: Environment sequence numbers. Up to 100 items.
          maxItems: 100
          items:
            type: integer
            format: int32
          example:
            - 1001
            - 1002
        envId:
          allOf:
            - $ref: '#/components/schemas/EnvironmentId'
          description: Environment ID. The request also accepts the field alias `id`.
        envName:
          type: string
          description: Environment name.
          example: marketing-01
        keyword:
          type: string
          description: >-
            Keyword filter. Matches environment name, group name, tag name, and
            remark.
          example: marketing
        groupId:
          type: string
          pattern: ^\d+$
          description: Group ID. `0` means ungrouped.
          example: '0'
        pageNo:
          type: integer
          format: int64
          description: Current page number, starting from 1. Default is 1.
          minimum: 1
          default: 1
          example: 1
        pageSize:
          type: integer
          format: int64
          description: Number of items per page. Default is 10, maximum 100.
          minimum: 1
          maximum: 100
          default: 10
          example: 10
      required:
        - pageNo
        - pageSize
    CloudBrowserStatus:
      type: string
      description: |
        Cloud runtime status:
        - `STARTING` — starting up
        - `RUNNING` — running and ready to connect
        - `CLOSED` — not started, closed, or failed to start
      enum:
        - STARTING
        - RUNNING
        - CLOSED
      example: RUNNING
    CloudBrowserArchiveStatus:
      type:
        - string
        - 'null'
      description: >
        Archive status of the current cloud run. `null` when there is no active
        run record:

        - `PENDING` — pending archive

        - `ARCHIVING` — archiving

        - `COMPLETED` — archive completed

        - `FAILED` — archive failed
      enum:
        - PENDING
        - ARCHIVING
        - COMPLETED
        - FAILED
        - null
      example: null
    CloudBrowserPageItem:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/EnvironmentId'
        envName:
          type: string
          description: Environment name.
          example: marketing-01
        proxyId:
          type:
            - string
            - 'null'
          pattern: ^\d+$
          description: >-
            Proxy ID currently bound to the profile. `null` when no proxy is
            configured.
          example: '1800000000000101'
        cloudBrowserStatus:
          $ref: '#/components/schemas/CloudBrowserStatus'
        cloudBrowserArchiveStatus:
          $ref: '#/components/schemas/CloudBrowserArchiveStatus'
        startDate:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Cloud runtime start time. `null` while starting, or when not started
            or closed.
          example: '2026-01-15T10:30:00.000+00:00'
      required:
        - id
        - envName
        - cloudBrowserStatus
    CloudBrowserPageData:
      type: object
      properties:
        total:
          type: string
          pattern: ^\d+$
          description: Total number of records.
          example: '42'
        current:
          type: string
          pattern: ^\d+$
          description: Current page number.
          example: '1'
        pages:
          type: string
          pattern: ^\d+$
          description: Total number of pages.
          example: '5'
        dataList:
          type: array
          description: >-
            Environments on the current page. Empty array when there are no
            results.
          items:
            $ref: '#/components/schemas/CloudBrowserPageItem'
      required:
        - total
        - current
        - pages
        - dataList
    CloudBrowserConnectRequest:
      type: object
      properties:
        envId:
          $ref: '#/components/schemas/EnvironmentId'
      required:
        - envId
    CloudBrowserConnectResult:
      type: object
      properties:
        cdpUrl:
          type: string
          description: >
            Full CDP (Chrome DevTools Protocol) address including the access
            `token` parameter. Pass this

            URL to an automation framework such as Puppeteer, Playwright, or
            Selenium to attach to the

            remote browser.
          example: >-
            https://runtime1.morelogin.com:16167?token=c62fedaaac524e41a0f02fc4345d41cb
        accessUrl:
          type:
            - string
            - 'null'
          description: >
            Cloud browser page wrapper address. Open it in a browser to view and
            control the cloud

            browser desktop. `null` when the page wrapper is not configured.


            The `token` parameter is a Base64-encoded payload carrying the
            desktop URL, desktop token,

            expiry, and team, user, member, and environment IDs. The `envName`
            and `lang` parameters set

            the displayed environment name and interface language.
          example: >-
            https://official-website.morelogin.com/browser-remote?token=eyJkZXNrdG9wVXJsIjoi...ZW52SWQiOiIyMDczMzk1NDg5NzM4OTE5OTM2In0%3D&envName=P-1267&lang=en-US
      required:
        - cdpUrl
  responses:
    VoidDataResponse:
      description: Success
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/ApiResponseBase'
              - type: object
                properties:
                  data:
                    type: 'null'
                    example: null
    BooleanDataResponse:
      description: Success
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/ApiResponseBase'
              - type: object
                properties:
                  data:
                    type: boolean
                    description: Whether the batch operation succeeded.
                    example: true
                required:
                  - data
    CloudBrowserPageResponse:
      description: Success
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/ApiResponseBase'
              - type: object
                properties:
                  data:
                    $ref: '#/components/schemas/CloudBrowserPageData'
                required:
                  - data
    CloudBrowserConnectResponse:
      description: Success
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/ApiResponseBase'
              - type: object
                properties:
                  data:
                    $ref: '#/components/schemas/CloudBrowserConnectResult'
                required:
                  - data
          example:
            code: 0
            msg: null
            data:
              cdpUrl: >-
                https://runtime1.morelogin.com:16167?token=c62fedaaac524e41a0f02fc4345d41cb
              accessUrl: >-
                https://official-website.morelogin.com/browser-remote?token=eyJkZXNrdG9wVXJsIjoi...ZW52SWQiOiIyMDczMzk1NDg5NzM4OTE5OTM2In0%3D&envName=P-1267&lang=en-US
            requestId: 1d4f3ea968664593860b94b35d4ebf5e
